home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / GENSCR.ZIP;1 / GENSCRNX.TXT < prev    next >
Encoding:
Text File  |  1993-08-10  |  20.0 KB  |  741 lines

  1. GENSCRNX 1.6b
  2.  
  3.  
  4.  
  5. INTRODUCTION
  6.  
  7.  
  8. GENSCRNX.PRG extends the control of code generated from FoxPro's 
  9. screen builder.  After Generate... is selected when using the Screen 
  10. Builder, GENSCRNX first copies the .SCX database and then updates it 
  11. based on comments in the snippets and setup code.  Also, GENSCRNX 
  12. places the .SPR into a memo field after its created to make possible code 
  13. changes and/or replacements after GENSCRN.  The ability to define 
  14. each object into a global database called FOXSCX.DBF is performed 
  15. when a define object directive is placed in an object's comment code.  
  16. The FOXSCX.DBF contains the same structure as FoxPro's .SCX files 
  17. except has added fields for object name, field, library, and other objects 
  18. that it bases from.  New screens can be created without snippet code by 
  19. simply placing a base object directive in the comment snippet with the 
  20. appropriate name.  GENSCRNX updates the .SCX before passing it to 
  21. GENSCRN.  Drivers can be defined in the CONFIG.FP and screen Setup 
  22. snippet code.  Every driver is called once for each record in the .SCX 
  23. before GENSCRN generates code.  The driver may update the .SCX 
  24. database with no limitations.  Objects can be manipulated or replaced by 
  25. pure FoxPro code using a driver procedure.  GENSCRNX handles the 
  26. code replacements to the .SPR.  A driver may use pre-made functions 
  27. contained in GENSCRNX which handle the .SCX record update for code 
  28. replacement, template insertion, and other .SCX update functions.  A 
  29. DEFINE WINDOW command can be inserted in the .SPR between the 
  30. GET/SAY fields in the Screen Layout section..  Multiple drivers may also 
  31. be selected for functions such as 3D effects or auto insertion of menu 
  32. push buttons (Next, Previous, Append, Delete, etc.).  GENSCRNX is 
  33. entirely written in FoxPro and fully compatible with FoxPro 2.0 and 
  34. FoxPro 2.5 (all platforms).  The FOXSCX library database can be 
  35. updated when referenced by FoxPro 2.0 and/or FoxPro 2.5 for MS-DOS 
  36. without any conversion.  FoxPro 2.5 for MS-DOS MS-DOS applications 
  37. can be built by referencing objects created with FoxPro 2.0 and vice 
  38. versa.  The FOXSCX.DBF database  can contain records for FoxPro 2.5 
  39. (all platform) while GENSCRNX automatically handles the record relation 
  40. between platforms.
  41.  
  42. Notes:
  43. CONFIG.FP relates to FoxPro 2.0 and FoxPro 2.5 DOS.
  44. CONFIG.FPW relates to FoxPro 2.5 Windows.
  45.  
  46.  
  47.  
  48.  
  49. FEATURES
  50.  
  51.  
  52. - Extended control over FoxPro's Screen Builder without changing 
  53. GENSCRN.
  54.  
  55. - Option for compiling the output file when generating from the Screen 
  56. Builder.
  57.  
  58. - Option for displaying the .SPR and .ERR files if an .ERR file is 
  59. generated after compiling the output file when generating from the 
  60. Screen Builder.
  61.  
  62. - Ability to store screen objects into a database library.
  63.  
  64. - Ability to retrieve screen objects from a database library with support of 
  65. multiple inheritance (expressions are separated by .AND. while 
  66. procedures are appended).
  67.  
  68. - Option to set Read level settings (OpenFiles, CloseFiles, Modal, 
  69. OutFile, etc.) from with the screens setup that override the Generate 
  70. dialog checkboxes.  This allows settings to be saved with the screen 
  71. without using a project.
  72.  
  73. - Ability to insert records contained in a separate .SCX file at compile 
  74. time.  All records row and column information is automatically adjusted.  
  75. This allows subforms to be inserted without copy and paste.  If the 
  76. inserted screen is updated, the screen importing it can be re-generated 
  77. without change.
  78.  
  79. - Ability to insert FoxPro code in place of any screen object.  This allows 
  80. a line or multiple lines of FoxPro code to be generated between GET 
  81. commands in the Screen Layout section.
  82.  
  83. - Ability to block a GET command with any IF/ENDIF statement.
  84.  
  85. - Ability to specify any SIZE clause and override the SIZE setting 
  86. defaulted by the Screen Builder.
  87.  
  88. - Ability to remove the SIZE clause from any GET command.
  89.  
  90. - Ability to create .PRG drivers that update the .SCX database at compile 
  91. time before GENSCRN is called.  This allows external programs to be 
  92. created that automatically add, update, or remove code of any screen 
  93. snippet.  Drivers can make function calls to many of GENSCRNX's built 
  94. in function library for parsing or insertion of .SCX information. 
  95.  
  96. - Support for any expression to be evaluated at compile time using 
  97. {{<expC>}} in any snippet or field.  GENSCRNX will evaluate <expC> at 
  98. compile time and replace {{<expC>}} with its result.  If <expC> was an 
  99. external function and the command was placed in the Setup snippet, the 
  100. external function could act like a #INCLUDE function by returning multiple 
  101. lines of code.
  102.   Example:
  103.   If the following command was in the Setup snippet and assuming the 
  104. current date was 06/01/93:
  105.       WAIT '{{DATE()}}' WINDOW NOWAIT
  106.   the following code would be placed in the .SPR:
  107.       WAIT '06/01/93' WINDOW NOWAIT
  108.  
  109.  
  110.  
  111.  
  112. INSTALLATION
  113.  
  114.  
  115. After unzipping GENSCRNX.ZIP, copy GENSCRNX.PRG to all existing 
  116. FoxPro 2.x directories
  117.  
  118. Change all CONFIG.FP and CONFIG.FPW files to:
  119.  
  120. _GENSCRN="<path>GENSCRNX.PRG"
  121.  
  122. MVCOUNT=512
  123.  
  124. Notes:
  125. If  MVCOUNT is already set to a number greater than 512, then do not 
  126. change it.  If MVCOUNT is set to a number less than 512, then change 
  127. the number to 512.  If a line containing MVCOUNT does not exist, then 
  128. create one as above.
  129.  
  130. Notes:
  131. For futher information about GENSCRNX and releated files, refer to 
  132. VERSION.TXT supplied with GENSCRNX.ZIP.
  133.  
  134.  
  135.  
  136.  
  137. CONFIG.FP/CONFIG.FPW OPTION SETTINGS
  138.  
  139.  
  140. _GENSCRNX
  141.  
  142. Specifies program to generate .SPR file from .SCX database.
  143.  
  144. Default:
  145. _GENSCRNX="<path>GENSCRN.PRG" in FoxPro start directory
  146.  
  147. Example:
  148. _GENSCRNX="C:\MYDIR\MYGENSCN.PRG"
  149.  
  150. Notes:
  151. When _GENSCRN="<pathname>\GENSCRNX.PRG", then 
  152. _GENSCRNX is used to specify which program is used to generate 
  153. screen code.  If _GENSCRNX is not specified in the 
  154. CONFIG.FP/CONFIG.FPW, the default setting is GENSCRN.PRG 
  155. located in FoxPro's start-up directory.
  156.  
  157.  
  158. _FOXSCX
  159.  
  160. Specifies database used for object library records.
  161.  
  162. Default:
  163. _FOXSCX="FOXSCX.DBF" in FoxPro start directory
  164.  
  165. Example: _FOXSCX="C:\MYDIR\FOXSCX.DBF"
  166.  
  167. Notes:
  168. It is recommended that all FoxPro 2.x CONFIG.FP/CONFIG.FPW contain 
  169. the same _FOXSCX setting.
  170.  
  171.  
  172. _SCXDRV1
  173.  
  174. Specifies global driver program.
  175.  
  176. Default:
  177. _SCXDRV1=""
  178.  
  179. _SCXDRV1 to _SCXDRV8
  180.  
  181. Specifies global driver program.  The numbers 1-8 represent various 
  182. driver hooks throughout GENSCRNX while the .SCX databases is being 
  183. generated.
  184.  
  185. Example:
  186. _SCXDRV2="C:\3DFOX\3D"
  187.  
  188.  
  189. _SPRDRV1
  190.  
  191. Specifies global driver program.
  192.  
  193. Default:
  194. _SPRDRV1=""
  195.  
  196. _SPRDRV1 to _SPRDRV6
  197.  
  198. Specifies global driver program.  The numbers 1-6 represent various 
  199. driver hooks throughout GENSCRNX while the .SPR file is being 
  200. updated.
  201.  
  202. Example:
  203. _SPRDRV1="C:\MYDIR\SPRUPD1"
  204.  
  205.  
  206. GENSCRNX
  207.  
  208. Specifies GENSCRNX functions enabled (ON) or disabled (OFF).
  209.  
  210. Default:
  211. GENSCRNX=ON
  212.  
  213.  
  214. COMPSPR
  215.  
  216. Specifies auto-compilation of .SPR file.  A public variable called 
  217. _COMPSPR to override the COMPSPR setting.
  218.  
  219. Default:
  220. COMPSPR=OFF
  221.  
  222. Important:
  223. This setting is ignored during screen building from projects.
  224.  
  225.  
  226. DISPSPR
  227.  
  228. Specifies auto-display of .SPR and .ERR files if an .ERR file is exists.  A 
  229. public variable called _DISPSPR to override the DISPSPR setting.
  230.  
  231. Default:
  232. DISPSPR=OFF
  233.  
  234.  
  235. Important:
  236. DISPSPR=ON may cause a file sharing error when SHARE.EXE is 
  237. installed.
  238.  
  239.  
  240.  
  241.  
  242. SETUP SNIPPET DIRECTIVE REFERENCE
  243.  
  244.  
  245. *:SET OPENFILES ON | OFF
  246.  
  247. Open files.
  248.  
  249. Example:
  250. *:SET OPENFILES ON
  251.  
  252.  
  253. *:SET CLOSEFILES ON | OFF
  254.  
  255. Close files.
  256.  
  257.  
  258.  *:SET DEFWINDS ON | OFF
  259.  
  260. Define windows.
  261.  
  262.  
  263. *:SET RELWINDS ON | OFF
  264.  
  265. Release windows.
  266.  
  267.  
  268. *:SET READCYCLE ON | OFF
  269.  
  270. Read cycle
  271.  
  272.  
  273. *:SET MULTREADS ON | OFF
  274.  
  275. Multiple READs.
  276.  
  277.  
  278. *:SET NOLOCK ON | OFF
  279.  
  280. READ nolock.
  281.  
  282.  
  283. *:SET MODAL ON | OFF
  284.  
  285. Modal.
  286.  
  287.  
  288. *:SET PLATONLY ON | OFF
  289.  
  290. Current platform objects only.  If this setting is ON, GENSCRN will not 
  291. generate code for other platform code but GENSCRNX will still process 
  292. all platform records.  Setting PLATONLY='ON' in the 
  293. CONFIG.FP/CONFIG.FPW files will cause GENSCRNX to not pre or 
  294. post process other platform records.  See ADDITIONAL INFORMATION 
  295. section below for controlling this setting using a public variable.
  296.  
  297.  
  298. *:SET BORDERGETS ON | OFF
  299.  
  300. Border for GETs.
  301.  
  302.  
  303. *:SET ASSOCWINDS TO <window title list>
  304.  
  305. Assoc. windows list.  The <window title list> is appended to Assoc. 
  306. windows list from screen or project.
  307.  
  308. Example:
  309. *:SET ASSOCWINDS TO Calculator,Calendar
  310.  
  311.  
  312. *:OUTFILE <file>
  313.  
  314. Output file name.
  315.  
  316. Example:
  317. *:OUTFILE TEST.PRG
  318.  
  319.  
  320. *:DEFLIB <library name>
  321.  
  322. Defines library name.
  323.  
  324.  
  325. *:INCLIB <library name>
  326.  
  327. Includes library in base object search path.
  328.  
  329.  
  330. *:BASLIB <library name>
  331.  
  332. Base library objects for field name match.
  333.  
  334.  
  335. *:SCXDRV1 <file>
  336.  
  337. Specifies screen driver program.
  338.  
  339.  
  340. *:SCXDRV1 to *:SCXDRV8
  341.  
  342. Specifies screen driver program.  The numbers 1-8 represent various 
  343. driver hooks throughout GENSCRNX while the .SCX databases is being 
  344. generated.
  345.  
  346.  
  347. *:SPRDRV1 <file>
  348.  
  349. Specifies screen driver program.
  350.  
  351.  
  352. *:SPRDRV1 to *:SPRDRV6
  353.  
  354. Specifies screen driver program.  The numbers 1-6 represent various 
  355. driver hooks throughout GENSCRNX while the .SPR file is being 
  356. updated.
  357.  
  358.  
  359. *:MEMVAR
  360.  
  361. Replaces all aliases in GET name from alias.variable to m.variable.  All 
  362. alias.variable names referenced in the WHEN, VALID, ERROR, 
  363. MESSAGE, RANGE LO, and RANGE HIGH snippets will be replaced 
  364. with m.variable.
  365.  
  366.  
  367. *:NAME
  368.  
  369. The following example demonstrates how *:NAME affects FoxPro 2.5's 
  370. #NAME directive.
  371.  
  372. #NAME v_show
  373.  
  374. is changed to
  375.  
  376. #NAME v_showd  && _DOS=.T.
  377. #NAME v_showw  && _WINDOWS=.T
  378. #NAME v_showm  && _MAC=.T.
  379. #NAME v_showu  &&_UNIX=.T.
  380.  
  381. The above changes will occur before GENSCRN is called.
  382. Then, a function is appended to the Cleanup snippet as follows:
  383.  
  384. FUNCTION V_SHOW
  385.  
  386. DO CASE
  387.   CASE _DOS
  388.     RETURN V_SHOWD()
  389.   CASE _WINDOWS
  390.     RETURN V_SHOWW()
  391.   CASE _MAC
  392.     RETURN V_SHOWM()
  393.   CASE _UNIX
  394.     RETURN V_SHOWU()
  395. ENDCASE
  396. RETURN .F.
  397.  
  398. FUNCTION V_SHOWM
  399. RETURN .F.
  400.  
  401. FUNCTION V_SHOWU
  402. RETURN .F.
  403.  
  404. This will result in the exact same code execution as if a CASE _DOS, 
  405. CASE _WINDOWS, etc. was generated in the snippet.  The only rule is 
  406. that *:NAME uses only the first 9 characters of the snippet name 
  407. specified. The 10th character is used for the platform character.  Also, 
  408. any PARAMETER statement that follows the #NAME in the snippet will 
  409. be properly handled in the cross-platform function that is generated.  The 
  410. only rule here is that the PARAMETER statements must be identical for 
  411. all platforms having the same #NAME definition.
  412.  
  413.  
  414. *:NOGEN
  415.  
  416. Prevents GENSCRN from being called so that no .SPR file is generated.  
  417. *:NOGEN should be used with templates since templates do not need 
  418. code to be generated.
  419.  
  420.  
  421. *:NOXGEN
  422.  
  423. Prevents GENSCRNX from updating .SCX database and .SPR file.
  424.  
  425.  
  426. *:NOCOMPSPR
  427.  
  428. Overrides COMPSPR=ON in CONFIG.FP/CONFIG.FPW.
  429.  
  430.  
  431. *:NODISPSPR
  432.  
  433. Overrides DISPSPR=ON in CONFIG.FP/CONFIG.FPW.
  434.  
  435.  
  436.  
  437.  
  438. COMMENT SNIPPET DIRECTIVE REFERENCE
  439.  
  440.  
  441. *:DEFOBJ <object name>
  442.  
  443. Defines object name.
  444.  
  445.  
  446. *:BASOBJ [<library name.]<object name>
  447.  
  448. Specify base object.
  449.  
  450.  
  451. *:INSOBJ [<library name.]<object name>
  452.  
  453. Insert object from FOXSCX.DBF in place of screen object.
  454.  
  455.  
  456. *:INSSCX <file>
  457.  
  458. Insert screen from template in place of screen object.
  459.  
  460.  
  461. *:INSTXT
  462.  
  463. Insert all preceding text in place of screen object.
  464.  
  465.  
  466. *:TRNTXT <expC1> || <expC2> [|| <expN1> ] [|| <expN2>]]
  467.  
  468. Transform text of *all* memo fields.  The search is *not* case-sensitive.
  469.  
  470. <expC1>
  471. The character expression that's searched for.
  472.  
  473. <expC2>
  474. The search character expression <expC1> is replaced by the 
  475. character expression <expC2>.  If <expC2> is omitted, <expC1> is 
  476. replaced with
  477. the null string.
  478.  
  479. <expN1>
  480. The optional numeric expression <expN1> specifies which 
  481. occurrence of <expC1> is the first to be replaced.  For example, if 
  482. <expN1> is 4, replacement begins with the fourth occurrence, 
  483. counting from the left, and the first three occurrences remain 
  484. unchanged.  The occurrence where replacement begins defaults to 1 
  485. if <expN1> is omitted.
  486.  
  487. <expN2>
  488. <expN2> specifies the number of occurrences of <expC1> to 
  489. replace.  If <expN2> is omitted, all occurrences of <expC1>, starting 
  490. with the occurrence specified in <expN1>, are replaced.
  491.  
  492. Note:
  493. *:TRNTXT is mainly used with the *:BASOBJ command for data 
  494. translation of code being referenced from a library object.
  495.  
  496.  
  497. *:IF <expL>
  498.  
  499. Blocks object with IF ... ENDIF statements.
  500.  
  501.  
  502. *:SIZE <expC>
  503.  
  504. Replaces object SIZE clause with <expC>.  <expC> can be any 
  505. character expression, including variable names or FoxPro functions.
  506.  
  507.  
  508. *:NOSIZE
  509.  
  510. Removes SIZE clause from object.
  511.  
  512.  
  513. *:DEFAULT <expC>
  514.  
  515. Replaces object DEFAULT clause with <expC>.  <expC> can be any 
  516. character expression, including variable names or FoxPro functions.  
  517. Push buttons, Radio buttons, and Check boxes use the value of <expC>.  
  518. Lists, invisible buttons, and spinners cannot use the *:DEFAULT 
  519. directive.  All other  objects use <expC> with a direct replacement.  If a 
  520. character default is desired, be sure to include the quotes in the 
  521. expression.  If the current object's color is set to default, then a COLOR 
  522. SCHEME <expN> or COLOR <color pair list> may be included in 
  523. <expC>.
  524.  
  525.  
  526. *:DELETE
  527.  
  528. Delete screen object at compile time.  Use *:DELETE for objects that 
  529. need to appear while using the Screen Builder but not in the .SPR file at 
  530. run-time.
  531.  
  532.  
  533.  
  534.  
  535. PROCEDURE SNIPPET DIRECTIVE REFERENCE
  536.  
  537.  
  538. #:INSERT <file>
  539.  
  540. Screen generator directive inserts the contents of <file> into generated 
  541. screen code.  Not only does GENSCRNX support the #INSERT directive 
  542. for FoxPro 2.0, but the #:INSERT directive performs the same operation 
  543. as FoxPro 2.5's #INSERT except it is much faster when inserting large 
  544. files.
  545.  
  546.     FILE        GENSCRN      GENSCRNX
  547.     SIZE        #INSERT        #:INSERT
  548.    -----------------------------------------------------------
  549.     2K            3.215            2.938
  550.     135K        178.717         3.475
  551.     330K        970.478         6.630
  552.     ----------------------------------------------------------
  553.     Time is in seconds using 486-50DX
  554.  
  555. When using GENSCRNX, use #:INSERT instead of #INSERT for better 
  556. performance.
  557.  
  558.  
  559.  
  560.  
  561. PROCEDURE SNIPPET COMMAND REFERENCE
  562.  
  563.  
  564. {{<expC>}}
  565.  
  566. Text surrounded by double braces performs the EVALUATION of 
  567. <expC> at compile time and returns the value in string form.  {{<expC>}} 
  568. is replaced with the string of EVALUATE(<expC>).  <expC> can be any 
  569. type (character, numeric, date, logical, etc.) and {{<expC>}} will always 
  570. return the result in character form.
  571.  
  572. Example:
  573. If the following command was in the Setup snippet and assuming the 
  574. current date was 06/01/93:
  575.  
  576. WAIT '{{DATE()}}' WINDOW NOWAIT
  577.  
  578. the following code would be placed in the .SPR:
  579.  
  580. WAIT '06/01/93' WINDOW NOWAIT
  581.  
  582. If the following command was in the Valid snippet:
  583.  
  584. DEFINE POPUP pop_test FROM {{VPOS+HEIGHT}},{{HPOS-1}};
  585.   TO {{VPOS+HEIGHT+7}},{{HPOS+WIDTH}};
  586.   PROMPT FIELD items.item
  587.  
  588. and VPOS=5, HPOS=10, WIDTH=8, HEIGHT=1 in the .SCX database, 
  589. then the following code would result in the Valid snippet of that object in 
  590. the .SPR:
  591.  
  592. DEFINE POPUP pop_test FROM 6,9;
  593.   TO 13,18;
  594.   PROMPT FIELD items.item
  595.  
  596.  
  597. {{&.<expC>}}
  598.  
  599. Text surrounded by double braces with a &. immediately after the open 
  600. braces performs the macro substitution of <expC> at compile time and 
  601. returns a null value in string form.  {{<expC>}} is replaced with a null 
  602. string.  <expC> can be any FoxPro command that can be executed within 
  603. a macro substitution string.
  604.  
  605. Example:
  606. If the following command was in the Setup snippet and assuming the 
  607. current date was 06/01/93:
  608.  
  609. {{& WAIT '{{DATE()}}' WINDOW NOWAIT}}
  610.  
  611. the following WAIT window would appear at compile time of the screen:
  612.  
  613. 06/01/93
  614.  
  615. If the following command was in the Setup snippet:
  616.  
  617. {{&.DO MYPROG}}
  618.  
  619. then a program called MYPROG would be executed as a subroutine at 
  620. compile time of the screen.  If the program was to return a character 
  621. string for code insertion, then {{MYPROG()}} would have been used.
  622.  
  623.  
  624.  
  625.  
  626. DRIVER INFORMATION
  627.  
  628.  
  629. Driver programs are specified either in the CONFIG.FP/CONFIG.FPW 
  630. files by defining:
  631.  
  632. _SCXDRV2="<pathname>\[<file>]".
  633.  
  634. Driver programs can also be specified a screen Setup snippet by 
  635. defining:
  636.  
  637. *:SCXDRV2 <pathname>\[<file>].
  638.  
  639. *:SCXDRV1 is used before any GENSCRNX compilation.  It can be used 
  640. as a #INCLUDE to add any GENSCRN or GENSCRNX directives.  
  641. Another method of obtaining a #INCLUDE type function is the use the 
  642. braces ({{<expC>}}) when <expC> contains an external function.  The 
  643. character string returned from the function will replace the {{<expC>}} 
  644. directly.  For example, if the Setup snippet contained the following line:
  645.  
  646. {{inc_test()}}
  647.  
  648. and the external function inc_test() return a character string of 
  649. #NOREAD, then the {{inc_test()}} line would be directly replaced by the 
  650. #NOREAD command.  Also, the returned character string may contain a 
  651. carriage return and line feeds (CHR(13)+CHR(10)) to separate lines 
  652. when multiple lines are needed for insertion.  Refer to the {{<expC>}} 
  653. definition supplied with GENSCRNX for further information.
  654. Notes:
  655. If the <file> parameter of a driver directive does not include a file 
  656. extension, the following extensions are checked in this order:
  657. .EXE, .APP, .PRG, .FXP
  658.  
  659. The n in SCXDRVn represents the hook number from GENSCRNX.  
  660. GENSCRNX has 8 different places during the compiling loop that can call 
  661. out to drivers.  The most common one to use is #2.  You can have infinite 
  662. drivers for #2:
  663.  
  664. Example:
  665. *:SCXDRV2 <driver1>
  666. *:SCXDRV2 <driver2>
  667.  
  668. The order they are listed is the order they are called.  Hook #1 is before 
  669. compilation (like #INCLUDE), hook #2 is the first in each compile loop, 
  670. and #8 is after compiling is complete.
  671.  
  672. Important:
  673. Only one driver can be specified in the CONFIG.FP/CONFIG.FPW files.  
  674. If more than one driver is specified in the Setup snippet, the drivers are 
  675. called in the order they are listed.  Drivers specified in the 
  676. CONFIG.FP/CONFIG.FPW are called before the drivers specified in the 
  677. Setup snippet.
  678.  
  679.  
  680.  
  681.  
  682. ADDITIONAL INFORMATION
  683.  
  684.  
  685. All *: directives used for GENSCRNX must be specified starting in column 
  686. one of the snippet.  Do not indent the *: directives with spaces or tabs.
  687.  
  688. When using the Standard version of FoxPro for MS-DOS, the .SPR file 
  689. size must be less than 64K.
  690.  
  691. If a public variable called _GENSCRNX is set to OFF, GENSCRNX with 
  692. pass the .SCX directly to GENSCRN and all GENSCRNX directives and 
  693. commands will be ignored.  GENSCRNX can also be specified in the 
  694. CONFIG.FP/CONFIG.FPW files and changed without re-entering 
  695. FoxPro.
  696.  
  697. If a public variable called _PLATONLY is set to ON, GENSCRNX and 
  698. GENSCRN will only generate code for the current running platform.  
  699. PLATONLY can also be specified in the CONFIG.FP/CONFIG.FPW files 
  700. and changed without re-entering FoxPro.  _PLATONLY='ON' is useful 
  701. during development when cross-platform code generation is not required 
  702. for screens until development is complete.
  703.  
  704.  
  705.  
  706.  
  707. COPYRIGHT NOTICE
  708.  
  709.  
  710. Compressed file: GENSCRNX.ZIP
  711. System: GenScrnX
  712. Author: Ken R. Levy
  713. Company: Jet Propulsion Laboratory
  714. Copyright: None (Public Domain)
  715.  
  716. All source code and documentation contained in GENSCRNX.ZIP was 
  717. developed at the Jet Propulsion Laboratory in Pasadena, Calif. and has 
  718. been placed into the public domain.  You may use, modify, copy, 
  719. distribute, and demonstrate any source code, example programs, or 
  720. documentation contained in GENSCRNX.ZIP freely without copyright 
  721. protection.  You may not resell any source code, example programs, or 
  722. documentation contained in GENSCRNX.ZIP.  All files contained in 
  723. GENSCRNX.ZIP are provided 'as is' without warranty of any kind.  In no 
  724. event shall its authors, contributors, or distributors be liable for any 
  725. damages.
  726.  
  727.  
  728.  
  729.  
  730. COMMENTS/SUGGESTIONS/PROBLEMS/QUESTIONS
  731.  
  732.  
  733. Please use CompuServe's FoxForum (section 3rd Party Products) 
  734. directed to:
  735.  
  736. Ken Levy 76350,2610
  737.  
  738. -----------------------------------------------------------
  739.  
  740.  
  741.